﻿//只用做多选

(function (wtm) {
    wtm.checkbox_Render = function (para) {
        if (para.beforeMount.length > 0) {
            eval(para.beforeMount + '(para);');
        }

        //预处理url
        para.url = wtm.getUrl(para.url);

        var $el = $('#' + para.id);

        //从网络加载
        if (para.url.length > 0) {
            $.get(para.url, function (resp) {
                para.data = resp.Data;
                wtm.checkbox_SetMultiValue(para);
            });
        }
        else {
            wtm.checkbox_SetMultiValue(para);
        }

        $el.parent().on('click', 'div.layui-form-checkbox', function () {
            var $this = $(this);
            var $checks = $this.parent().find('.layui-form-checked');

            var arr = [];

            $checks.each(function () {
                arr.push($(this).prev().val());
            });
            var obj = {
                data: arr,
                id: para.id
            };
            if (para.changeFunc.length > 0) {
                eval(para.changeFunc + '(obj);');
            }

            var length = $checks.length;
            if (length == 0) {
                $el.val('');
            }
            else {
                $el.val(length);
            }
        });

        if (para.mounted.length > 0) {
            eval(para.mounted + '(para);');
        }
    };

    wtm.checkbox_SetMultiValue = function (para) {
        var $el = $('#' + para.id);
        data = para.data;

        for (var i = 0; i < data.length; i++) {
            var $input = $('<input/>')

            //设定初始值
            if (para.value.indexOf(data[i][para.valueKey]) > -1) {
                $input.attr('checked', true);

                //必填项有值
                $el.val('hasValue');
            }

            $input.attr({
                name: para.fieldName,
                type: 'checkbox',
                value: data[i][para.valueKey],
                title: data[i][para.textKey]
            });

            if (data[i].Disabled == 'True') {
                $input.attr('disabled', true);
            }
            if (data[i].Checked == 'True') {
                $input.attr('checked', true);
            }
            if (para.skin == 'primary') {
                $input.attr('lay-skin', 'primary');
            }
            $el.parent().append($input);
        }
    };
})(wtm);